package com.caesar.Net.UDP;

/**
 * @author caesar
 * @date 2025/7/22
 * @Description:
 * @apiNote
 */
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Inet4Address;
import java.net.InetAddress;

public class Send {
    public static void main(String[] args) throws Exception{
        DatagramSocket ds = new DatagramSocket();//告诉网卡驱动，我要准备与网络进行通信
        //操作系统会给我们Send程序随机分配一个端口号，指定本机IP

        //对数据打包
        String str = "，你好，这个是张磊发送的测试UDP ：这周四上午笔试，下午面试";
        byte[] data = str.getBytes("UTF-8");
        byte[] address = {(byte)192,(byte)168,39,59};//给谁发，写谁的IP地址
        /*
        192：
             4个字节  00000000 00000000 00000000 11000000
             截断为一个字节  11000000
                因为IP地址没有负数，所以对应如果是不考虑符号位，0-255范围内
         */
        //这里使用多态引用，有IPV4和IPV6两种方式，
        InetAddress ip = Inet4Address.getByAddress(address);//接收方的IP
        DatagramPacket dp = new DatagramPacket(data,0,data.length,ip,8888);//接收方的端口号

        //发送数据报包
        ds.send(dp);
        System.out.println("发送完毕");

        ds.close();//释放资源
    }
}
